package com.lyc.common.utils;

import com.lyc.common.constant.SignInConstant;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @Author YooLin
 * @Date 2017/7/24 21:42
 * @Description 日期工具类
 */
public class DateUtil {
    private static Calendar calendar = Calendar.getInstance();


    /**
     * 获取指定时间 xx:xx xx小时xx分钟xx秒
     * @param hour 指定小时
     * @param minute 指定分钟
     * @param second 指定秒数
     * @return 指定的时间
     */
    public static Date getTime(Integer hour,Integer minute,Integer second){
        calendar.set(Calendar.HOUR_OF_DAY,hour);//踩坑：这里不能用Calendar.HOUR，否则天数会+1
        calendar.set(Calendar.MINUTE,minute);
        calendar.set(Calendar.SECOND,second);
        return calendar.getTime();
    }

    /**
     * 获取指定日期是星期几
     * @return 周x
     */
    public static int getWeekDay(Date date){
        calendar.setTime(date);
        int today = calendar.get(Calendar.DAY_OF_WEEK)-1;//外国人以周天为一周的第一天所有Calendar.DAY_OF_WEEK=1表示周天 2表示周一 ...
        return today==0?7:today;
    }

    public static void main(String[] args){
        System.out.println(getTimeDValue(new Date(),getTime(20,00,00)));
    }

    /**
     * 获取两个日期的分钟时间差
     * @param d1 指定日期1
     * @param d2 指定日期2
     * @return 分钟时间差
     */
    public static Integer getTimeDValue(Date d1, Date d2) {
        long dValue = Math.abs(d1.getTime() - d2.getTime());
        return (int)dValue/(1000*60);
    }
}
